home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / win_utl2 / pspa370a.zip / CHANGE.DOC < prev    next >
Text File  |  1996-04-26  |  18KB  |  356 lines

  1. ===============================================================================
  2. ==========================                         ============================
  3. ==========================     VERSION HISTORY     ============================
  4. ==========================                         ============================
  5. ===============================================================================
  6.  
  7.  
  8.      For easy reference, this history is presented in reverse order (most
  9.      recent version first).  Remember:  if you have previously registered
  10.      Parse-O-Matic, you can self-register any evaluation copies we create
  11.      for two years (six years for deluxe registration).  Thus, your small
  12.      investment in the  initial  registration  can provide you  with many
  13.      free updates.  Since we do not  automatically  ship new versions, we
  14.      encourage you to drop by our BBS (514-345-8654) every few months, or
  15.      visit our Web site (http://www.cam.org/~pinnacl) to see what's new.
  16.  
  17.  
  18. +------------------------- WE ARE CUSTOMER-DRIVEN! ---------------------------+
  19. |                                                                             |
  20. |    Most of the enhancements to Parse-O-Matic are inspired by POM users.     |
  21. |    We charge a nominal fee for custom work, but we will usually provide     |
  22. |    a discount if the requirement seems to be beneficial to other users.     |
  23. |                                                                             |
  24. |    ******* PARSE-O-MATIC'S EVOLUTION IS GUIDED BY OUR CUSTOMERS *******     |
  25. |                                                                             |
  26. +-----------------------------------------------------------------------------+
  27.  
  28.  
  29. ------ ------------------------------------------------------------------------
  30.  VER.  WHAT'S NEW IN THIS VERSION
  31. ------ ------------------------------------------------------------------------
  32.  
  33. 3.70A  New commands
  34.          CVTCASE converts a variable to uppercase or lowercase
  35.          GETENV  obtains a system environment variable (e.g. PATH)
  36.          MSGWAIT controls the behaviour of error messages
  37.          REMAP   transforms sub-strings into other strings
  38.          MAPFILE reads a file containing data transformations for REMAP
  39.        Enhancements to PARSE, PEEL and FINDPOSN
  40.          Search strings (e.g. "2*,") are now known as decapsulators
  41.          Overlapping decapsulators now behave more gracefully
  42.            PARSE and PEEL return an empty string; FINDPOSN returns "0"
  43.              This situation used to generate an error message
  44.                i.e. "From" value exceeds "To" value
  45.                Most users found this unhelpful or confusing
  46.                For details, see "Overlapping Decapsulators" in the manual
  47.          New search parameter looks for "last occurence" or "first occurence"
  48.            Example of  "last occurence":  PARSE xyz $FLINE ">*$" ">*.00"
  49.            Example of "first occurence":  PARSE xyz $FLINE "<*$" "<*.00"
  50.        Documentation
  51.          Improved quick-reference section
  52.            The "importable" version has moved from EXAMPL04.POM to QUICKREF.POM
  53.  
  54.        ------------------------
  55.        IMPORTANT UPGRADE NOTICE
  56.        ------------------------
  57.                             
  58.        This notice concerns you if:
  59.  
  60.        - You have created POM applications that are run unattended
  61.        - You use the HALT command
  62.  
  63.        (See "Unattended Operation" and "The HALT Command" in the manual)
  64.  
  65.        Since version 3.20, error messages would "time out" after sixty seconds
  66.        (or when a key was pressed), whereupon Parse-O-Matic would terminate.
  67.  
  68.        Parse-O-Matic now waits for permission to continue if an error occurs.
  69.        You can control this behaviour with the new MSGWAIT command (see "The
  70.        MSGWAIT Command" in the manual).
  71.  
  72.        To make Parse-O-Matic behave as it did before (i.e. timing out sixty
  73.        seconds), add this line to your POM file:  MSGWAIT "60"
  74.  
  75.        If you simply want to make your HALT commands work the same way (i.e.
  76.        allowing them to time out after about a minute), insert MSGWAIT "60"
  77.        prior to each HALT command.
  78.  
  79.  
  80. ------ ------------------------------------------------------------------------
  81.  VER.  ENHANCEMENTS IN PREVIOUS VERSIONS
  82. ------ ------------------------------------------------------------------------
  83.  
  84. 3.61A  Added inline decrement (e.g. SET y = x-)
  85.        LOG command now allows two additional (optional) values
  86.        Rationalized null specs and empty fields in Parse, Peel and FindPosn
  87.          Customers were using these in creative ways that we had not foreseen
  88.          We have taken these into account and fully documented the behaviour
  89.          See "The Null Decapsulator", "Left-Peeling" and "Insoluble Searches"
  90.        Minor improvements to the processing display
  91.  
  92. 3.60A  New commands
  93.          MAKEDATA converts text data to binary
  94.          MAKETEXT converts binary data to text
  95.          ZERODATE initializes the date for serialized date format
  96.          GET      reads variable-length records and delimiter-terminated data
  97.          GETTEXT  combines functions of GET and MAKETEXT commands
  98.          AGAIN    allows you to return to an earlier BEGIN comparison
  99.        Enhancements
  100.          CHOP now allows manually-controlled reading (via the GET command)
  101.          Read-only files are opened as such, avoiding sharing problems on LANs
  102.          Improved appearance of trace logs
  103.          Hexadecimal literals (e.g. $39$34 means "94")
  104.        Utilities
  105.          SHOWNUM.EXE: reference tool converts decimal to hex and vice-versa
  106.          DEVELOP.BAT: simple interactive development environment (IDE)
  107.        Documentation
  108.          New material added for the READNEXT and LOOKUP commands
  109.          Several new sections about techniques and operational planning
  110.          Additional material about running Parse-O-Matic under Windows
  111.        Improved file-handling
  112.          OFILE now adds the default extension, if necessary
  113.            In 3.50, OFILE "XYZ" would not automatically add the .TXT extension
  114.          The default extension routine is no longer "fooled" by ..\ or .\
  115.            Earlier, a file name like ..\XYZ would not get the default extension
  116.        Problems fixed
  117.          Fixed "FRAME-UUI" problem affecting Quiet mode
  118.          Fixed routine to search through DOS PATH for "missing" files
  119.  
  120. 3.50A  Corrected a bug in the LOOKCOLS command (affected Parse-O-Matic v3.4x)
  121.          It would set the "Key-End" value to the last number listed in LOOKCOLS
  122.          It would set the "Data-Start" and "Data-End" to defaults (12 and 255)
  123.        New commands
  124.          ERASE   deletes a file
  125.          OUTPAGE sends a page eject to the output file (or device)
  126.          PAUSE   delays the specified number of milliseconds
  127.          OFILE   switches between output files
  128.            You can overwrite a file or append (add to the end)
  129.              See "How Parse-O-Matic Opens an Output File" in the manual
  130.              The append feature is also available at the command-line level
  131.        Enhancements
  132.          Processing display now shows input and output in appropriate units
  133.            Input units  (Bytes or Records)
  134.            Output units (Bytes or Lines)
  135.          Additional information in "processing completed" line in POMLOG.TXT
  136.            It now specifies the amount of output (in bytes or lines)
  137.          Output can now be sent to a generic device (e.g. COMx or LPTx)
  138.            See "Sending Output to a Device" in the manual
  139.        Documentation
  140.          New "File Handling" section in the manual (POM.DOC)
  141.  
  142.        ------------------------
  143.        IMPORTANT UPGRADE NOTICE
  144.        ------------------------
  145.  
  146.        POM now creates the output file ONLY when it first receives output
  147.        See "How Parse-O-Matic Opens an Output File" in the manual for details
  148.        If the output file does not receive any output...
  149.          If it did not previously exist, it will not be created
  150.          If it already existed, it will contain the old data
  151.            To ensure old data is gone...
  152.              Delete the output file before running Parse-O-Matic, or ...
  153.              Use the ERASE command in the PROLOGUE
  154.  
  155. 3.41B  PEEL reports precise nature of certain impossible parsing situations
  156. 3.41A  Fixed trimming problem affecting PEEL when using "null" delimiter
  157.  
  158. 3.40   New commands
  159.          DATE and TODAY provide date formatting, in any language
  160.          MONTHNUM converts text month to numeric month, in any language
  161.          COPY copies a variable from one character position to another
  162.          DELETE removes selected characters positions from a variable
  163.          EXTRACT moves selected characters from one variable to another
  164.          FINDPOSN locates the position of a string in another
  165.        Enhancements
  166.          All control files (including POM) are searched for, if necessary
  167.            If a directory is explicitly specified, POM looks there only
  168.            Otherwise, POM searches logged dir, POM's dir, then the DOS PATH
  169.            This makes it easier to build a library of standard files
  170.          INSERT now allows "insert to left" and "insert to right"
  171.          Automatic numeric comparators
  172.            The old method used text comparisons, which required pre-padding
  173.            Comparisons automatically determine if number is real or integer
  174.          CALC and CALCREAL now explicitly report "divide by zero" attempts
  175.          User manual reformatted for easier reference
  176.            Explanations of commands are preceded by an improved overview
  177.        Problems fixed
  178.          There were no problems reported in the last release
  179.  
  180. 3.31A  Numeric command parameters are now more forgiving
  181.          Spaces, tabs and commas are removed
  182.  
  183. 3.30A  New commands
  184.          LOG command writes a message to the log file POMLOG.TXT
  185.          HALT command allows termination with a DOS errorlevel
  186.          CALC command performs integer arithmetic functions
  187.          CALCREAL command performs decimal arithmetic functions
  188.          EPILOGUE command defines code to be run before input is processed
  189.          PROLOGUE command defines code to be run after  input is processed
  190.        Enhancements
  191.          Optional MINLEN setting controls the READNEXT command
  192.          Tracing no longer shows code inside skipped BEGIN/ELSE/END blocks
  193.          Increased variable name length from 8 to 12
  194.          Increased number of DBF fields from 50 to 100
  195.          Increased maximum line length in look-up files from 80 to 255
  196.          Increased maximum number of POM lines from 500 to 750
  197.            This does not include comment lines
  198.          Lookup file (LOOKFILE) is now searched for in various directories
  199.            If a directory is explicitly specified, POM looks there only
  200.            Otherwise, POM searches logged dir, POM's dir, then the DOS PATH
  201.          Restructured tutorial for easier reference
  202.          New deluxe registration provides 6 years of new version registration
  203.            Three times the standard benefit, but only twice the price
  204.        Problems fixed
  205.          Clustered ACCEPTs inside "false" code blocks were sometimes executed
  206.          Some error reporting caused problems on extremely large POM files
  207.          Ran out of file handles if you had a large number of input files
  208.          Incomplete trimming of multiple character delimiters in PEEL
  209.  
  210. 3.21A  Custom version; not released to public
  211.  
  212. 3.20A  Parsing of multiple input files into one output file
  213.          DOS wildcards are now permitted in POM command for input file name
  214.            For example:  POM XYZ.POM *.TXT OUTPUT.TXT
  215.          New NEXTFILE command skips to next input file
  216.          New predefined variable $COMMAND, showing current POM command
  217.        New PEEL command
  218.          Works like PARSE, but removes parsed text from source variable
  219.        New SOUND command
  220.          Sets error-message sound or generates a sound
  221.        The DONE and READNEXT commands now have optional comparisons
  222.          For example:  DONE x = y
  223.        Restructured example files as an interactive tutorial
  224.        Enhancements for unattended operation
  225.          Log file (POMLOG.TXT) records processing, and any errors
  226.          Error and warning messages pause for a minute, then the program ends
  227.        Fixed problem with ELSE statements nested two deep
  228.  
  229. 3.11A  DBF file enhancements
  230.          Improved reporting of DbF fields when tracing
  231.          Corrected data alignment error that affected some DbF files
  232.  
  233. 3.10A  New ELSE command
  234.          Allows BEGIN/ELSE/END blocks
  235.        New READNEXT command
  236.          Reads next line from input file, maintaining current place in POM file
  237.        New SETLEN command
  238.          Sets a variable to the length of a value (e.g. "XYZ" is length "3")
  239.        New DONE command (useful only in BEGIN/ELSE/END blocks)
  240.          Jumps to the end of the POM file; equivalent to IGNORE "X" = "Y"
  241.        New ~ comparator ("does not contain")
  242.        PARSE returns a null value if given impossible parsing task
  243.          Example: PARSE x "FRED/MARY" "1*/" "2*/" (problem: no second slash)
  244.        Maximum number of variables and literals increased to 1000 (was 225)
  245.  
  246. 3.00A  New PARSE command
  247.          You can now parse free-form data (including comma-delimited files)
  248.        New APPEND command
  249.          Allows you to concatenate up to four values
  250.        Data in output buffer (via OUT) is now flushed at end of input file
  251.          You can now use POM to create binary and fixed-record-length files
  252.        Varied comparators (equals, not equals, less than, contains, etc.)
  253.          Affects the commands IF, IGNORE, ACCEPT, BEGIN, OUT[END]
  254.          For example:  IF x > y THEN z = "YES"
  255.  
  256.        -------------------------------------------
  257.        CHANGES REQUIRED IN YOUR EXISTING POM FILES
  258.        -------------------------------------------
  259.  
  260.        This notice involves a change in the behaviour of IGNORE and ACCEPT.
  261.  
  262.        With the addition of varied comparators, you may have to change some of
  263.        your old POM files.  The IGNORE and ACCEPT commands were considered
  264.        "true if the string contains the specified text".  In other words, they
  265.        performed a "contains" comparison rather than an "equals" comparison.
  266.        (IF, BEGIN and OUT[END] used an "equals" comparison.)  IGNORE and ACCEPT
  267.        now default to an "equals" comparison.
  268.  
  269.        There are two situations in which you must modify an IGNORE or ACCEPT:
  270.  
  271.        (1)  If you padded the line with "=" (for clarity or aesthetics), yet
  272.             you meant "contains", the line should be changed.  For example:
  273.  
  274.             IGNORE $FLINE[1 10] = "YES"    (old style, using "=" for clarity)
  275.             IGNORE $FLINE[1 10] ^ "YES"    (new style, using "contains" symbol)
  276.  
  277.        (2)  If you omitted the "=" character, and you want to do a "contains"
  278.             comparison, you must insert the "contains" symbol:
  279.  
  280.             IGNORE $FLINE[1 10] "YES"      (old style, stated tersely)
  281.             IGNORE $FLINE[1 10] ^ "YES"    (new style, using "contains" symbol)
  282.  
  283.        If you are comparing two strings of equal length, there is no need to
  284.        modify an IGNORE or ACCEPT.  For example:  IGNORE $FLINE[1 3] "YES"
  285.        will continue to work properly, since either a "contains" or "equals"
  286.        comparison will produce the same result.
  287.  
  288. 2.71B  Fixed SPLIT bug
  289.          POM quit early if file length was an exact multiple of 32767
  290.  
  291. 2.71A  Added PROPER command
  292.        Updated manual to explain licensing options
  293.  
  294. 2.70C  Minor fix to unregistered (trial copy) reminder
  295.  
  296. 2.70A  POM can now read DBF (DBase) files directly
  297.        New ASCII literals (using the # character)
  298.        New TRACE, OUTHDG and PAGELEN commands
  299.        Documented the /Q command-line switch
  300.        User manual expanded to 30 pages; new examples (walk-throughs) provided
  301.  
  302. 2.60   New BEGIN and END commands (blocked "IF" operations)
  303.          Command lines may now be indented for clarity
  304.        New predefined variable $SPLIT
  305.          This indicates which CHOP or SPLIT segment you are on (1, 2, 3 etc.)
  306.        New look-up processing
  307.          New LOOKUP, LOOKSPEC, LOOKCOLS, LOOKFILE commands
  308.          New /L start-up option
  309.        Improved error detection and reporting
  310.        Comparison operation is now optional for OUT and OUTEND
  311.  
  312. 2.52   Added new symbol $TAB; fixed operation of $BRR and $BRL
  313.        New provisions for international registration
  314.  
  315. 2.51   Fixed Program Error MV-P-2 caused by padding with tabs instead of spaces
  316.  
  317. 2.50   CHOP command breaks up fixed-length (non-text) files
  318.        User manual restructured and partially rewritten
  319.  
  320. 2.40   SPLIT command breaks up long (over 255 characters) input lines
  321.  
  322. 2.33   New /Q (quiet) function:  type POM /? for explanation
  323.        Fixed bug: long output lines (>255) occasionally would lose some text
  324.  
  325. 2.32   Fix to CHANGE to correct lock-up when matching single-character string
  326.        Added registration via credit card
  327.        Added new version of SEE to allow full browsing of wide documents
  328.        While tracing, processing display now shows precise line number
  329.  
  330. 2.31   MINLEN now supports zero-length lines
  331.          Default MINLEN is, however, still "1"
  332.  
  333. 2.30   Output (via OUT and OUTEND) can now be more than 255 characters
  334.          However, no individual OUT or OUTEND can output a line longer than 255
  335.        New commands:  PAD, INSERT
  336.        Ease-of-use changes
  337.          More informative processing display
  338.          Variable names are no longer case sensitive
  339.          Improved error checking
  340.          Added another example to documentation
  341.  
  342. 2.20   Provided 2-year self-registration for registered users
  343.        Increased number of variables and literals from 100 to 225
  344.        Allowed "=", "THEN" and "ELSE" to improve readability
  345.        New commands:  SET, ACCEPT
  346.        Now possible to trace variables by name (SET POM=var/var/var...)
  347.          SET POM=T (older versions) is now specified as SET POM=ALL
  348.        Improved documentation (more examples)
  349.  
  350. 2.10   First public release
  351.  
  352. 2.00   Custom version; not released to public
  353.  
  354. 1.00   Custom version; not released to public
  355.  
  356.